package cn.forlce;


import java.util.Random;

/**
 * 堆排序
 *      1. 先定一个数组
 *      2. 再看
 */
public class Demo02 {
    public void sorter01(int[] a){
        //先输入数字（要求必需是0-10的整数）
        System.out.println("请输入你要排序的数字");

        //定义这个数组
        int[] b = new int[11];
        for (int i = 0; i<a.length;i++){
            b[a[i]]++;
        }
        for (int i = 0; i < b.length; i++) {
            for (int j = 0; j < b[i]; j++) {
                System.out.print(i+"\t");

            }

        }

    }

    /**
     * 计算各个数的随机概率
     * @param
     */
    public static void plusProbability (int number,int bound){
        Random r = new Random();
        int rondowInt = r.nextInt(bound);
        int[] a = new int[number];
        int[] boundArray = new int[bound];
        //生成一个随机数组
//        System.out.println("数组为");
        for (int i = 0; i <number ; i++) {
            a[i] = r.nextInt(bound);
//            System.out.print(a[i]+"\t");
        }
//        System.out.println();

        /**
         * 用一个桶排序去处理
         */
        for (int i = 0; i < number; i++) {
            boundArray[a[i]] ++;
        }

        double[] gailv = new double[bound];
        /**
         * 计算概率
         */
        for (int i = 0; i < bound; i++) {
            gailv[i] = (double) boundArray[i]/(double)number;
            System.out.println("数字"+i+"的出现概率为"+gailv[i]);
        }

    }

    public static Demo03[] createStudentclass(int number, int bount){
        Random r = new Random();
        Demo03[] demo03s = new Demo03[number];
        for (int i = 0; i < number; i++) {
            String name = "forlce"+ i;
            int score = r.nextInt(bount);
            Demo03 demo03 = new Demo03(name,score);
            demo03s[i]= demo03;


        }
        return demo03s;
    }


    public static void main(String[] args) {
//        int[] a = {6,5,8,4,10,6,9,6,5,5,4,5,3,1,0,2,};
//        new Demo03().sorter(a);
//        Random r = new Random();
//        plusProbability(1000000000,20);
//        System.out.println("交换前：");
//        printer(demo03s);
//        Demo03 demo030 = new Demo03();
//        demo030 = demo03s[0];
//        demo03s[0] = demo03s[1];
//        demo03s[1] = demo030;
//        System.out.println("交换后：");
//        printer(demo03s);
        Demo03[] demo03s = createStudentclass(12,11);
        printer(demo03s);
        demo03s = Demo03.sorter(demo03s);
        printer(demo03s);

    }
    public static void printer (Demo03[] demo03s){
        for (int i = 0; i < demo03s.length; i++) {
            Demo03 demo03 = demo03s[i];
            System.out.print(demo03.getName()+"成绩为：");
            System.out.print(demo03.getScore()+"\t");
        }
        System.out.println();
    }
}
